| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | 1× 1× 1× | import clock from './clock' import popover from '../popover' import dialog from '../dialog' export default { props: { autoOk: { type: Boolean, default: false }, cancelLabel: { type: String }, okLabel: { type: String }, container: { type: String, default: 'dialog', validator (val) { return val && ['dialog', 'inline'].indexOf(val) !== -1 } }, mode: { type: String, default: 'portrait', validator (val) { return val && ['portrait', 'landscape'].indexOf(val) !== -1 } }, format: { type: String, default: 'ampm', validator (val) { return ['ampm', '24hr'].indexOf(val) !== -1 } }, initialTime: { type: Date } }, data () { return { open: false, showClock: false, trigger: null } }, mounted () { this.trigger = this.$el }, methods: { handleAccept (date) { this.$emit('accept', date) this.open = false }, handleDismiss () { this.dismiss() }, handleClose () { this.dismiss() }, dismiss () { this.open = false this.$emit('dismiss') }, hideClock () { this.showClock = false } }, watch: { open (val) { if (val) this.showClock = true } }, render (h) { const Clock = this.showClock ? h(clock, { props: { autoOk: this.autoOk, cancelLabel: this.cancelLabel, okLabel: this.okLabel, landscape: this.mode === 'landscape', initialTime: this.initialTime, format: this.format }, on: { accept: this.handleAccept, dismiss: this.handleDismiss } }) : undefined return h('div', { }, [ this.container === 'dialog' ? h(dialog, { props: { open: this.open, dialogClass: ['mu-time-picker-dialog', this.mode] }, on: { close: this.handleClose, hide: this.hideClock } }, [Clock]) : h(popover, { props: { trigger: this.trigger, overlay: false, open: this.open }, on: { close: this.handleClose, hide: this.hideClock } }, [Clock]) ]) } } |